/**	
 *  Copyright (c) 2005-2014 VedantaTree all rights reserved.
 * 
 *  This file is part of ExpressionOasis.
 *
 *  ExpressionOasis is free software. You can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  ExpressionOasis is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL 
 *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
 *  OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
 *  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 
 *  OR OTHER DEALINGS IN THE SOFTWARE.See the GNU Lesser General Public License 
 *  for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public License
 *  along with ExpressionOasis. If not, see <http://www.gnu.org/licenses/>.
 *  
 *  Please consider to contribute any enhancements to upstream codebase. 
 *  It will help the community in getting improved code and features, and 
 *  may help you to get the later releases with your changes.
 */
package org.vedantatree.expressionoasis.utils;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;


/**
 * It handles the error occurred during validating/parsing the XML document
 * 
 * @author Mohit Gupta
 * 
 */
public class XMLErrorHandler implements ErrorHandler
{

	/** For logging purpose */
	private static Log	LOGGER	= LogFactory.getLog( XMLErrorHandler.class );

	/**
	 * The error is invoked when ever any error occurs during XML validation.
	 * 
	 */
	public void error( SAXParseException exception ) throws SAXException
	{
		LOGGER.error( "Error occured during parsing", exception );
		throw new SAXException( "Error occured during parsing", exception );
	}

	/**
	 * The fatalError is invoked when ever any fatal error occurs during XML
	 * validation.
	 * 
	 */
	public void fatalError( SAXParseException exception ) throws SAXException
	{
		LOGGER.fatal( "Fatal Error occured during parsing", exception );
		throw new SAXException( "Error occured during parsing", exception );
	}

	/**
	 * The warning is invoked when ever any warning occurs during XML
	 * validation.
	 */
	public void warning( SAXParseException exception ) throws SAXException
	{
		LOGGER.warn( "Warning call during parsing", exception );
	}

}
